Back to Article
Article Notebook
Download Source

Causal Inference for Computational Social Science

Modeling Political Islam

Author
Affiliation

Christy Hsu

Georgetown University

Published

July 14, 2025

Abstract

Intro

This project hopes to explore the data-generating process(es), or the story of how Arab Sunni Muslims in 1988, from three distinct populations– Egyptians, Kuwaitis, and Palestinians in Kuwait—-came to support their contemporary Islamic movements. In particular, it looks into the role of personal religiosity, perceptions of Islam’s role in society, and relational attitudes such as how individuals relate to their personal and national identities, how they view their government, their neighbors, and their past and present relationships with the West.

With the flexibility and expressiveness of the PGM language, I hope these attempts here (learning the structure and respecting the variations) can be seen as an effort to situate how the supportive attitude toward Political Islam within their contexts, while also demonstrate a variety of political and social imaginations that constitute the complex story behind the general labels of Sunni, Arab, Muslim, Middle Easterner.

Literature Review

Data Collection

Evidence from Public Opinion Surveys

Carnegie Middle East Governance and Islam Dataset, 1988-2014 (ICPSR 32302)(M. Tessler (2016))1

This dataset from ICPSR contains individual and country level variables from surveys done in the Middle East during 1988 to 2014, integrating 56 surveys to allow two-level, over-time analysis.

1988 Public Opinion Survey

This survey was carried out in mid-1988, with samples drawn from Cairo and Kuwait, targeting the urban Sunni Muslim adults: Egyptians (n = 292), Kuwaitis (n = 300) and Palestinians residing in Kuwait (n = 293).2 This implies that we can generally attribute the following labels for the respondents in the dataset:

  • Sunni Muslim
  • Arab
  • Adult
  • Urban

Allowing for a glimpse into the patterns and variations in attitudes at the individual level, at the same time, the design of this survey project enables us to group these individuals into belonging to three distinct populations:

  • Egyptian citizens
  • Kuwaiti citizens
  • Long-time Palestinian residents of Kuwait

Which, in turn, provides us the opportunity for understanding and comparison at a more coarse level. This survey project also looked forward to the typicality and generalizability of the sample of Egyptians to represent (Tunisians, Algerians, Jordanians, Moroccans); as for the sample of Kuwaitis to represent those living in the Gulf shakhdoms.

Episodes

Episode 1

I first encountered the 1988 public opinion survey while reading Tessler’s “The origins of popular support for Islamist movements: A political economy analysis (1997)”(M. 1941.-. Tessler 1997) Later, I was able to find this dataset available on ICPSR, presented in Carnegie Middle East Governance and Islam Dataset, 1988-2014 (ICPSR 32302)(M. Tessler 2016) This dataset is an effort to gather surveys across the period, reorganize and harmonize the survey items into variables that allow for analysis over time. Therefore, some of survey items that Tessler used in his analysis cannot be found in the dataset, and the codebook contains limited descriptions for the 1988 survey.

As I went on to seek for further details about the 1988 survey, I came across Tessler and Grobschmidt’s study “Democracy in the Arab world and the Arab-Israeli conflict (1995)”.(Garnham and Tessler 1995, Mark Tessler, and Marilyn Grobschmidt. “Democracy in the Arab world and the Arab-Israeli conflict.” pp. 135-169) This earlier analysis led me to learn that the 1988 survey originally included 293 Palestinians residing in Kuwait, while the ICPSR dataset only contains the 292 Egyptian respondents and the 300 Kuwaiti respondents.3

That is, although the dataset I have acquired is already fruitful, yet, relying on it alone would not allow me to replicate many analyses that were done right after 1988. And I could not convince myself not to think about why there were originally three samples originally yet I am now using only two of them because of accessibility.

Therefore, I reached out first to ICPSR. They looked over the version history and did not find any records about the 1988 Palestinian sample nor the original survey instrument. Thus, they kindly contacted Professor Tessler on my behalf. The good new today is that I received professor Tessler’s reply. In the mean time, I truly look forward to learn more about what happened with the Palestinian sample and anticipate the chance of access to the original dataset.

Episode 2

Thanks to the generosity and kindness of Professor Tessler, I have the chance to look into these three groups together. And I worked on to recover the original variables with the researches done in the 1980s, 1990s that used the original variable name, especially:

  • Mark Tessler, and Jamal Sanad, “Will the Arab Public Accept Peace with Israel: Evidence From Surveys in Three Arab Societies.” In Israel at the Crossroads, Gregory Mahler and Efraim Karsh ed. (London: British Academic Press, 1994)(Karsh and Mahler (1994))4
  • David Garnham, and Mark A. Tessler, Democracy, War, and Peace in the Middle East (Bloomington: Indiana University Press, 1995)(Garnham and Tessler (1995))5
  • Mark A. Tessler, and Jolene Jesse, “Gender and Support for Islamist Movements: Evidence from Egypt, Kuwait and Palestine.” The Muslim World 86, no. 2 (1996): 200–228. ATLA0001012290.(“Gender and Support for Islamist Movements: Evidence from... - Georgetown University Law Library (n.d.))
  • Mark Tessler, and Ina Warriner. “Gender, Feminism, and Attitudes toward International Conflict: Exploring Relationships with Survey Data from the Middle East.” World Politics 49, no. 2 (1997): 250–81. https://doi.org/10.1353/wp.1997.0005.(M. Tessler and Warriner (1997))
  • Mark Tessler, “The Origins of Popular Support for Islamist Movements: A Political Economy Analysis.” Islam, Democracy, and the State in North Africa, (Bloomington: Indiana University Press, 1997)

Episode 3

After reading the related materials, I was able to map most of the variables to the corresponding questions that were asked. I later went on to recover some of the variables that were not decoded properly.6

Please use the following link to take a glimpse of the 70% recovered codebook for the 1988 survey.

Place the Model

Dependent and Independent Variables

In [1]:
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.3.0
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lme4)
Le chargement a nécessité le package : Matrix

Attachement du package : 'Matrix'

Les objets suivants sont masqués depuis 'package:tidyr':

    expand, pack, unpack
ekp_df <- read_csv('data/ekp-1988-survey.csv')
Rows: 885 Columns: 213
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (159): group_name, country_name, age, GROUP, Q1, Q2, Q3, Q4, Q5, Q6, Q7,...
dbl  (54): obs_idx, group_idx, country_idx, female, Q10, supp_islam_mov, rel...

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ekp_df |> colnames()
  [1] "obs_idx"               "group_name"            "group_idx"            
  [4] "country_name"          "country_idx"           "female"               
  [7] "age"                   "GROUP"                 "Q1"                   
 [10] "Q2"                    "Q3"                    "Q4"                   
 [13] "Q5"                    "Q6"                    "Q7"                   
 [16] "Q8"                    "Q9"                    "Q10"                  
 [19] "Q11P1"                 "Q11P2"                 "Q11P3"                
 [22] "Q11P4"                 "Q11P5"                 "Q12"                  
 [25] "Q13"                   "Q14"                   "Q15"                  
 [28] "Q16"                   "Q17"                   "Q18"                  
 [31] "Q19"                   "Q20"                   "Q21"                  
 [34] "Q22"                   "Q23"                   "Q24"                  
 [37] "Q25"                   "Q26"                   "Q27"                  
 [40] "Q28"                   "Q29P1"                 "Q29P2"                
 [43] "Q29P3"                 "Q29P4"                 "Q29P5"                
 [46] "Q29P6"                 "Q29P7"                 "Q29P8"                
 [49] "Q30"                   "Q31"                   "Q32"                  
 [52] "Q33P1"                 "Q33P2"                 "Q33P3"                
 [55] "Q33P4"                 "Q33P5"                 "Q34"                  
 [58] "Q35P1"                 "Q35P2"                 "Q35P3"                
 [61] "Q35P4"                 "Q35P5"                 "Q35P6"                
 [64] "Q36"                   "Q37P1"                 "Q37P2"                
 [67] "Q37P3"                 "Q37P4"                 "Q37P5"                
 [70] "Q37P6"                 "Q37P7"                 "Q37P8"                
 [73] "Q37P9"                 "Q37P10"                "Q37P11"               
 [76] "Q38"                   "Q39"                   "Q40"                  
 [79] "Q41"                   "Q42"                   "Q43"                  
 [82] "Q44"                   "Q45"                   "Q46"                  
 [85] "Q47"                   "Q48"                   "Q49"                  
 [88] "Q50P1"                 "Q50P2"                 "Q50P3"                
 [91] "Q50P4"                 "Q51"                   "Q52"                  
 [94] "Q53"                   "Q54"                   "Q55"                  
 [97] "Q56"                   "Q57"                   "Q58"                  
[100] "Q59"                   "Q60"                   "Q61"                  
[103] "Q62"                   "Q63"                   "Q64"                  
[106] "Q65"                   "Q66P1"                 "Q66P2"                
[109] "Q66P3"                 "Q66P4"                 "Q66P5"                
[112] "Q67"                   "Q68"                   "Q69"                  
[115] "Q70P1"                 "Q70P2"                 "Q70P3"                
[118] "Q71"                   "Q72"                   "Q73P1"                
[121] "Q73P2"                 "Q73P3"                 "Q73P4"                
[124] "Q73P5"                 "Q74P1"                 "Q74P2"                
[127] "Q74P3"                 "Q74P4"                 "Q75"                  
[130] "Q76"                   "Q77"                   "Q78"                  
[133] "Q79P1"                 "Q79P2"                 "Q79P3"                
[136] "Q79P4"                 "Q79P5"                 "Q79P6"                
[139] "Q80"                   "Q81"                   "Q82"                  
[142] "Q83"                   "Q84"                   "Q85"                  
[145] "Q86"                   "Q87"                   "Q88"                  
[148] "Q89"                   "Q90"                   "Q91"                  
[151] "Q92"                   "Q93"                   "Q94"                  
[154] "Q95"                   "Q96"                   "Q97"                  
[157] "Q98"                   "Q99"                   "Q100"                 
[160] "Q101"                  "Q102"                  "supp_islam_mov"       
[163] "relg_awakening"        "pol_islam"             "pol_islam_binary"     
[166] "quran_freq"            "ref_relg_freq"         "personal_islam"       
[169] "sharia_sociolife"      "sharia_crim_civ"       "relg_study"           
[172] "social_islam"          "sep_relg_politics"     "priv_relg"            
[175] "opp_pol_relg"          "per_id"                "nation_id"            
[178] "pol_efficacy"          "pol_active"            "be_pol_active"        
[181] "polpart_shura"         "uni"                   "student"              
[184] "unemployed"            "finan_satis"           "gov_ignore_ppl"       
[187] "offic_selfinterest"    "obey_lead"             "caliphate"            
[190] "over40"                "coop"                  "west_values_corrupt"  
[193] "censor_west"           "west_reason_underdev"  "muslim_brotherhood"   
[196] "islamist"              "arab_nationalism"      "socialism"            
[199] "liberalism"            "income"                "us_me_policies"       
[202] "us_relation"           "arab_israel_sol"       "life_security"        
[205] "newspaper_freq"        "rev_sep_relg_politics" "rev_priv_relg"        
[208] "pol_islam0"            "persocio_islam0"       "pol_act0"             
[211] "att_us0"               "critic_gov0"           "neg_west0"            

Dependent V: Support for Political Islam

The main two variables that forms our operationalization of Support for Political Islam are:

What do you think of the religious awakening now taking place in society?

. tab Q72 GROUP, col missing chi2

+-------------------+
| Key               |
|-------------------|
|     frequency     |
| column percentage |
+-------------------+

    DO YOU |
   SUPPORT |
      CURR |
 ORGANIZED | EGYPTIANS,KUWAITIS,PALESTINIANS
 RELG MOVE |     EGYPT     KUWAIT  PALESTINI |     Total
-----------+---------------------------------+----------
       YES |        36         45         31 |       112 
           |     12.33      15.00      10.58 |     12.66 
-----------+---------------------------------+----------
  SOMEWHAT |        81        105         94 |       280 
           |     27.74      35.00      32.08 |     31.64 
-----------+---------------------------------+----------
        NO |       149        106        122 |       377 
           |     51.03      35.33      41.64 |     42.60 
-----------+---------------------------------+----------
 UNCERTAIN |        23         42         40 |       105 
           |      7.88      14.00      13.65 |     11.86 
-----------+---------------------------------+----------
         . |         3          2          6 |        11 
           |      1.03       0.67       2.05 |      1.24 
-----------+---------------------------------+----------
     Total |       292        300        293 |       885 
           |    100.00     100.00     100.00 |    100.00 

          Pearson chi2(8) =  21.7615   Pr = 0.005

. 
In [2]:
ekp_df |> count(group_name, supp_islam_mov) |>
  group_by(group_name) |>
  mutate(
    pct = 100 * n / sum(n)
  )
group_name supp_islam_mov n pct
Egyptian 1 149 51.0273973
Egyptian 2 23 7.8767123
Egyptian 3 81 27.7397260
Egyptian 4 36 12.3287671
Egyptian NA 3 1.0273973
Kuwaiti 1 106 35.3333333
Kuwaiti 2 42 14.0000000
Kuwaiti 3 105 35.0000000
Kuwaiti 4 45 15.0000000
Kuwaiti NA 2 0.6666667
Palestinian 1 122 41.6382253
Palestinian 2 40 13.6518771
Palestinian 3 94 32.0819113
Palestinian 4 31 10.5802048
Palestinian NA 6 2.0477816
In [3]:
palette4 <- c('#A597C5', '#D2CDDF', '#FFFFD1', '#CEE8B9','#86BDB1', '#54766E')
na_palette <- c('#E5DED8')

ekp_df |> 
  count(group_name, supp_islam_mov) |> 
  group_by(group_name) |> 
  mutate(pct = 100 * n / sum(n)) |> 
  ggplot(aes(x = group_name, y = pct, fill = factor(supp_islam_mov))) +
  geom_col(position = "dodge", color = "grey") +
  scale_fill_manual(
    values = c(palette4, na_palette),
    na.value = na_palette
  ) +
  labs(
    x = "Group",
    y = "Percentage",
    fill = "Support Level",
    title = "Support Islamic Movements"
  ) +
  theme_bw() +
  theme(
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank()
  )

What do you think of the religious awakening now taking place in society?

. tab Q69 GROUP, col missing chi2

+-------------------+
| Key               |
|-------------------|
|     frequency     |
| column percentage |
+-------------------+

                     | EGYPTIANS,KUWAITIS,PALESTINIANS
 RELIGIOUS AWAKENING |     EGYPT     KUWAIT  PALESTINI |     Total
---------------------+---------------------------------+----------
         IN FAVOR OF |       181        196        162 |       539 
                     |     61.99      65.33      55.29 |     60.90 
---------------------+---------------------------------+----------
             AGAINST |        63         49         49 |       161 
                     |     21.58      16.33      16.72 |     18.19 
---------------------+---------------------------------+----------
         DO NOT KNOW |        40         51         77 |       168 
                     |     13.70      17.00      26.28 |     18.98 
---------------------+---------------------------------+----------
 AGREE W/O EXTREMISM |         0          2          0 |         2 
                     |      0.00       0.67       0.00 |      0.23 
---------------------+---------------------------------+----------
AGREE IF COM W MODER |         1          1          0 |         2 
                     |      0.34       0.33       0.00 |      0.23 
---------------------+---------------------------------+----------
                   . |         7          1          5 |        13 
                     |      2.40       0.33       1.71 |      1.47 
---------------------+---------------------------------+----------
               Total |       292        300        293 |       885 
                     |    100.00     100.00     100.00 |    100.00 

         Pearson chi2(10) =  27.7779   Pr = 0.002

. 
In [4]:
# ekp_df |> count(group_name, relg_awakening) |>
#   group_by(group_name) |>
#   mutate(
#     pct = 100 * n / sum(n)
#   )

Preparing the variables

I reconstructed most of the attitudinal variables into scales of 1–4 or 1–3, in order to preserve their ordinal nature and to allow further aggregation and averaging into broader composite scales.

In [5]:
library(tidyverse)
library(psych)

Attachement du package : 'psych'
Les objets suivants sont masqués depuis 'package:ggplot2':

    %+%, alpha
In [6]:
islam_cols <- c("supp_islam_mov", "relg_awakening", "quran_freq", "ref_relg_freq", "sharia_sociolife", "sharia_crim_civ", "relg_study", "sep_relg_politics", "priv_relg")
islam_df <- ekp_df |> dplyr::select(all_of(islam_cols))
fa.parallel(islam_df, fa = "fa", n.iter = 100, show.legend = TRUE)

Parallel analysis suggests that the number of factors =  4  and the number of components =  NA 
fa_islam <- fa(islam_df, nfactors = 4, rotate = "varimax", fm = "ml")
fa.diagram(fa_islam)

Cross Tabulation

Base Model: Linear Regression with Adaptive Pooling

Some Group Level Contexts

I am not sure whether I can share the original dataset here, since it has never been published on its own yet. For reference, I provided a pdf of all the variables cross tabulated by GROUP (which is the three samples) in STATA, chi-squared test p-values are also presented in the PDF file.

Cairenes living in America’s Egypt: the 1980s

  1. Population Size: 9,000,000 in Cairo
  2. Political Form: Secularized State and Islamic Opposition(Lapidus (2014))7

Being a Citizen of Kuwait before the 2nd Gulf War

  1. Population Size: 850,000
  2. Political Form: Monarchy and welfare programs

Kuwaiti Palestinians or Expatriate Labors

  1. Population Size: 300,000
In [7]:
library(lme4)
In [8]:
source('data/stat_binscatter.r')
In [9]:
group_labels <- c(
  "Egyptian"    = "Egyptian (n = 292)",
  "Kuwaiti"     = "Kuwaiti (n = 300)",
  "Palestinian" = "Palestinian (n = 293)"
)
In [10]:
eg_lm <- lm(pol_islam0 ~ persocio_islam0, data = ekp_df|> filter(group_name == "Egyptian"))
ku_lm <- lm(pol_islam0 ~ persocio_islam0, data = ekp_df|> filter(group_name == "Kuwaiti"))
pa_lm <- lm(pol_islam0 ~ persocio_islam0, data = ekp_df|> filter(group_name == "Palestinian"))
full_lm <- lm(pol_islam0 ~ persocio_islam0, data = ekp_df)
adapt_lm <- lmer(pol_islam0 ~ persocio_islam0 + (1 + persocio_islam0 | group_name), data = ekp_df)

full_coef <- tibble(
  group_name = unique(ekp_df$group_name),
  model = "Full pooling",
  intercept = full_lm$coefficients["(Intercept)"],
  slope = full_lm$coefficients["persocio_islam0"]
)

adapt_coef <- coef(adapt_lm)$group_name |>
  rownames_to_column("group_name") |>
  rename(intercept = `(Intercept)`,
         slope = persocio_islam0) |>
  mutate(model = "Adaptive pooling")

no_coef <- bind_rows(
  tibble(group_name = "Egyptian",
         model = "No pooling",
         intercept = eg_lm$coefficients[["(Intercept)"]],
         slope = eg_lm$coefficients[["persocio_islam0"]]),
  tibble(group_name = "Kuwaiti",
         model = "No pooling",
         intercept = ku_lm$coefficients[["(Intercept)"]],
         slope = ku_lm$coefficients[["persocio_islam0"]]),
  tibble(group_name = "Palestinian",
         model = "No pooling",
         intercept = pa_lm$coefficients[["(Intercept)"]],
         slope = pa_lm$coefficients[["persocio_islam0"]])
)
coef_df <- bind_rows(full_coef, adapt_coef, no_coef)
p3 <- ggplot(ekp_df, aes(x = persocio_islam0, y = pol_islam0)) +
  stat_binscatter(
    aes(group = group_name),
    geom = "pointrange",
    bins = 8
  ) +
  geom_abline(
    data = coef_df,
    aes(
      intercept = intercept,
      slope = slope,
      color = model,
      linetype = model
    ),
    linewidth = 1.3
  ) +
  facet_wrap(~ group_name, labeller = labeller(group_name = group_labels)) +
  theme_bw() +
  labs(
    title = "Multilevel Regression",
    x = "Personal and Social Islam",
    y = "Political Islam",
    color = "Model",
    linetype = "Model"
  ) +
  scale_color_manual(
    values = c(
      "Full pooling" = "darkgreen",
      "No pooling" = "purple",
      "Adaptive pooling" = "black"
    )
  ) +
  scale_linetype_manual(
    values = c(
      "Full pooling" = 1,
      "No pooling" = 3,
      "Adaptive pooling" = 2
    )
  )
ggsave(filename = "image/multilevel-regression-p3.png", plot = p3, width = 22, height = 8)

PyMC Model One: Personal-Social Islam * Politically Active = Political Islam?

PyMC Model Two: Arab Bitterness, Corruption and Stagnation

PyMC Model Three: Identities in the Public, in the World

Garnham, David, and Mark A. Tessler. 1995. Democracy, War, and Peace in the Middle East. Indiana Series in Arab and Islamic Studies. Bloomington, IN: Indiana University Press.
“Gender and Support for Islamist Movements: Evidence from... - Georgetown University Law Library.” n.d. https://wrlc-gulaw.primo.exlibrisgroup.com. Accessed July 27, 2025.
Karsh, Efraim, and Gregory S. Mahler. 1994. Israel at the Crossroads: The Challenge of Peace. London ; British Academic Press.
Lapidus, Ira M. 2014. A History of Islamic Societies. Third edition. New York: Cambridge University Press.
Tessler, Mark. 2016. “Carnegie Middle East Governance and Islam Dataset, 1988-2014.” Inter-university Consortium for Political and Social Research. https://doi.org/10.3886/ICPSR32302.v6.
Tessler, Mark 1941-. 1997. “The Origins of Popular Support for Islamist Movements: A Political Economy Analysis.” Islam, Democracy, and the State in North Africa, 93.
Tessler, Mark, and Ina Warriner. 1997. “Gender, Feminism, and Attitudes Toward International Conflict: Exploring Relationships with Survey Data from the Middle East.” World Politics 49 (2): 250–81. https://doi.org/10.1353/wp.1997.0005.

  1. Tessler, Mark. Carnegie Middle East Governance and Islam Dataset, 1988-2014. Inter-university Consortium for Political and Social Research [distributor], 2016-04-28. https://doi.org/10.3886/ICPSR32302.v6↩︎

  2. ICPSR 32302 codebook, Garnham and Tessler (1995), pp. 164-166. Namely, Kuwaiti Shii muslims, Egyptian Christians and Palestinian Christians were excluded.↩︎

  3. and in 1992 Tessler had already finished writing his research “The Origin of Popular Support for Islamist movements” as a part of a research project launched by USAID, yet, it was till 1997 that the paper was rewritten and published↩︎

  4. pp. 48-70↩︎

  5. Mark Tessler, and Marilyn Grobschmidt. “Democracy in the Arab world and the Arab-Israeli conflict.”, pp. 135-169↩︎

  6. most of them were variables that ask the respondent to rank↩︎

  7. military authoritarian regime with some democratic opening in the 1980s↩︎